# coding:utf-8
import pandas as pd
import numpy as np

# 读取文件
filename = './src/book_data.csv'
df = pd.read_csv(filename, encoding='gbk', index_col=0)

# 第四组定性分析【作者排名】

# 先提取出收藏数>=500000的作品
df1 = df[df['当前被收藏数'] >= 300000]

# 再提取出总书评数>= 400000的作品
df1 = df[df['总书评数'] >= 200000]

# 提取营养液数>=100000的作品
df1 = df[df['营养液数'] >= 400000]

# 将过滤后的的作品按作者进行统计
writer = df1['作者'].value_counts()
# 重置索引更改列名
writer = pd.DataFrame(writer)
writer = writer.reset_index().rename(columns={'index': '作者', '作者': '作品数量'})

# 提取出优秀作品全文字数大于等于30万的作者
lst = df1[df1['全文字数'] >= 300000]['作者'].tolist()
# 依次排序
writer_rank = df1[df1['作者'].isin(lst)].groupby(by='作者', as_index=False).agg(
    {'营养液数': np.max, '当前被收藏数': np.max, '总书评数': np.max, '全文字数': np.max}).sort_values(
    by=['营养液数', '当前被收藏数', '总书评数', '全文字数'], ascending=False, ).head(30)

# 导出为excel
writer_rank.to_excel('./src/book_writer_rank.xlsx', index=False)

